package com.ruoyi.rsikManage.service;


import com.ruoyi.rsikManage.domain.MonitorPoint;
import com.ruoyi.rsikManage.domain.TVideoStandPlace;
import com.ruoyi.rsikManage.domain.PlaceCategory;

import java.util.List;


/**
 * 视频场所标准字典Service接口
 *
 * @author ruoyi
 * @date 2023-08-08
 */
public interface ITVideoStandPlaceService
{
    boolean checkHasMonitorRelPlace(String placeCategoryDicVal, String monitorId);

    boolean checkHasMonitorRelPlaceForUnitCodes(String placeCategoryDicVal, String monitorId,Long unitCode);

    List<PlaceCategory> selectCategoryListWithPlace(String standardFile);

    List<PlaceCategory> selectPlaceCategoryDicList(String dicType, String parentDicVal);
    /**
     * 查询视频场所标准字典
     *
     * @param id 视频场所标准字典ID
     * @return 视频场所标准字典
     */
    TVideoStandPlace selectTVideoStandPlaceById(Long id);
    /**
     * 查询视频场所标准字典列表
     *
     * @param tVideoStandPlace 视频场所标准字典
     * @return 视频场所标准字典集合
     */
    List<TVideoStandPlace> selectTVideoStandPlaceList(TVideoStandPlace tVideoStandPlace);

    /**
     * 查询场所的同时携带该场所的监控点信息
     * @param tVideoStandPlace
     * @return
     */

    List<TVideoStandPlace> selectPlaceListWithMonitors(TVideoStandPlace tVideoStandPlace);

    List<TVideoStandPlace> selectPlaceListWithMonitorsForUnitCodes(TVideoStandPlace place);

    List<TVideoStandPlace> getSamePlace(String placeName);

    /**
     *  给某个场所下新增一个监控点
     * @param monitorId 监控点id
     * @return
     */
    void addMonitorRelPlace(String placeName, String monitorId);



    /**
     *  给某个场所下新增一个监控点
     * @param monitorId 监控点id
     * @return
     */
    void addMonitorRelPlaceForUnitCodes(String placeName, String monitorId,Long unitCode);


    /**
     * 删除某个场所和监控点的关联
     *
     * @param monitorId 监控点id
     * @return
     */
    void delMonitorRelPlace(String placeName, String monitorId);

    /**
     * 删除某个场所和监控点的关联
     *
     * @param monitorId 监控点id
     * @return
     */
    void delMonitorRelPlaceForUnitCodes(String placeName, String monitorId,Long unitCode);



    int delMonitorRelAllPlace(String monitorId);

    int delMonitorRelAllPlaceForUnitCodes(String monitorId,Long unitCode);



    /**
     * 新增视频场所标准字典
     *
     * @param tVideoStandPlace 视频场所标准字典
     * @return 结果
     */
    public int insertTVideoStandPlace(TVideoStandPlace tVideoStandPlace);

    /**
     * 修改视频场所标准字典
     *
     * @param tVideoStandPlace 视频场所标准字典
     * @return 结果
     */
    public int updateTVideoStandPlace(TVideoStandPlace tVideoStandPlace);

    /**
     * 批量删除视频场所标准字典
     *
     * @param ids 需要删除的视频场所标准字典ID
     * @return 结果
     */
    public int deleteTVideoStandPlaceByIds(Long[] ids);


    /**
     * 删除视频场所标准字典信息
     *
     * @param id 视频场所标准字典ID
     * @return 结果
     */
    public int deleteTVideoStandPlaceById(Long id);

    List<PlaceCategory> selectCategoryListWithPlacesWithMonitors();
}
